Congestion can involve too much network traffic clogging network pathways. Common causes of congestion may include too many users on a single network segment or collision domain, high-demand from bandwidth-intensive networked applications, a rapidly growing number of users accessing the Internet, and the increased power of personal computers (PCs) and servers, etc. Data networks frequently attempt to offer different classes of service to different types of traffic. For example, voice traffic prefers low jitter, control traffic prefers low latency, and best effort traffic gets whatever bandwidth remains. A typical means to offer this differentiation of service is to give each class of traffic a separate queue and to schedule traffic from each queue out of an egress port according to some policy. This policy frequently assigns a percentage of the egress link bandwidth to each class to be applied under overload conditions. One potential difficulty in reaching high-speed operation occurs when packets exit the network device. Packets queued up on an egress port of a network device need to be shaped and scheduled for transmission. This shaping is typically performed on a per class of service (CoS) basis.